/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sysprojectmg.horasproduccion.biz;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import sysprojectmg.horasproduccion.be.BeanHorasProduccion;
import sysprojectmg.horasproduccion.be.BeanMiembro;
import sysprojectmg.horasproduccion.dao.HorasProduccionDAO;
import sysprojectmg.proyecto.biz.ControladorProyecto;
import sysprojectmg.seguridad.biz.ControladorUsuario;
import sysprojectmg.utiles.SntpClient;

/**
 *
 * @author Metis Gaia 2010-02
 */
public class ControladorHorasProduccion {

    public BeanHorasProduccion obtenerDatos(int idProyecto, int idUsuario) throws Exception {
        BeanHorasProduccion bean = new BeanHorasProduccion();
        ControladorProyecto controladorProyecto = new ControladorProyecto();
        ControladorUsuario controladorUsuario = new ControladorUsuario();
        ControladorProductor controladorProductor = new ControladorProductor();

        int idSemana = obtenerSemanaActual();
        
        bean.setIdProyecto(idProyecto);
        bean.setNombreProyecto(controladorProyecto.obtenerProyectoPorId(idProyecto).getNombreProyecto());
        bean.setNombreCoordinador(controladorUsuario.obtenerUsuarioPorId(idUsuario).getNombre_apellido());
        bean.setSemana(idSemana);
        bean.setListaProductores(controladorProductor.obtenerProductoresXProyecto(idProyecto, idSemana));

        return bean;
    }

    private int obtenerSemanaActual() throws IOException {
        SntpClient ntp = new SntpClient();
        Calendar cal = Calendar.getInstance();
        cal.setFirstDayOfWeek(1);
        cal.setMinimalDaysInFirstWeek(5);
        
        int numeroSemana = cal.get(Calendar.WEEK_OF_YEAR);
        System.out.println("semana: "+numeroSemana);

        return numeroSemana;
    }

    public boolean actualizarHoras(ArrayList<BeanMiembro> listaProd, int idProyecto, int idsemana) throws SQLException {
        HorasProduccionDAO dao = new HorasProduccionDAO();
        return dao.actualizarHoras(listaProd, idProyecto, idsemana);
    }

    public boolean generarSemanaSgt(int semanaActual) {
        HorasProduccionDAO dao = new HorasProduccionDAO();
        return dao.generarSemanaSgt(semanaActual);
    }
}
